package com.ruubypay.biz.mvc.workflow.service;

import com.ruubypay.biz.mvc.workflow.model.request.FlowModel;
import com.ruubypay.web.common.page.DataGrid;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Map;
/**
 * 模型管理服务API
 * @author chenhaiyang
 */
public interface ModelService {
    /**
     * 获取模型列表页
     * @param paramMap 参数
     * @param pageNumber 页码
     * @param pageSize 页数
     * @return 返回结果集
     */
    DataGrid listDataModels(Map<String, Object> paramMap, Integer pageNumber, Integer pageSize);

    /**
     *  保存模型
     * @param flowModel 保存模型
     * @return 返回模型id
     * @throws UnsupportedEncodingException 不支持的异常
     */
    String saveModel(FlowModel flowModel) throws UnsupportedEncodingException;

    /**
     * 删除模型
     * @param idArray 模型id集合
     * @return 执行结果
     */
    int deleteModelService(String idArray);

    /**
     * 部署模型
     * @param flowModel 模型
     * @return 返回部署结果
     * @throws IOException IO异常
     */
    String deploymentModel(FlowModel flowModel) throws IOException;

    /**
     * 根据模型id获取xml文件
     * @param modelId 模型id
     * @return 返回xml内容
     * @throws IOException IO异常
     */
    String viewXmlFromModelId(String modelId) throws IOException;

    /**
     * 判断能否正常的导出xml文件
     * @param flowModel 流程对象
     * @return 返回导出结果
     */
    String isCanexportXmlFromModelId(FlowModel flowModel);

    /**
     * 导出xml文件
     * @param modelId 模型id
     * @return 返回xml文件
     */
    Object[] exportXmlFromModelId(String modelId);
}
